.. _cmlPmIxLineStart: cmlPmIxLineStart ================================ -------------------------------- SYNOPSYS ````````````` .. code-block:: none VT_I4 cmlPmIxLineStart ([in] VT_I4 BoardID, [in] VT_I4 NodeId, [in] VT_I4 MapIndex, [in] VT_PR4 DistList ) DESCRIPTION ````````````` - cmlPmIxLineStart() 함수는 현재 ìœ„ì¹˜ë¡œë¶€í„°ì˜ ìƒëŒ€ 좌표 ì§ì„ ë³´ê°„ ì´ì†¡ì„ 수행합니다. cmlPmIxLineStart() 함수는 ëª¨ì…˜ì„ ì‹œìž‘ì‹œí‚¨ í›„ì— ë°”ë¡œ 반환ë©ë‹ˆë‹¤. \ - ì´ í•¨ìˆ˜ì˜ ì‚¬ìš©ê³¼ í˜¸ì¶œì— ìžˆì–´, ì œê³µëœ ãˆœì»¤ë¯¸ì¡°ì•„ì˜ í•¨ìˆ˜ í—¤ë” Visual Basic ì—서는 í•¨ìˆ˜ì˜ ì²¨ë‘ì–´ cml ê°€ 붙지 않습니다. PARAMETER ````````````` â–¶ BoardID : 사용ìžê°€ ì„¤ì •í•œ 디바ì´ìŠ¤(ë³´ë“œ) ID. â–¶ NodeId : 사용ìžê°€ ì œì–´í•˜ê³ ìž í•˜ëŠ” 노드 번호. â–¶ MapIndex : 맵 번호(Map index), ì´ ë§µë²ˆí˜¸ë¥¼ 사용하기 ì „ì— ë¨¼ì € cmlPmIxMapAxes() 함수를 통하여 해당 ë§µë²ˆí˜¸ì— ìœ íš¨í•œ ì¶•ë“¤ì´ ë§µí•‘ ë˜ì–´ 있어야 합니다. â–¶ DistList : 현재 ìœ„ì¹˜ë¡œë¶€í„°ì˜ ìƒëŒ€ì ì¸ ì´ì†¡ 좌표 ê°’(ê° ì¶•ì˜ ì´ì†¡ 거리 ê°’)ì˜ ë°°ì—´ 주소. ì´ ë°°ì—´ì˜ í¬ê¸°ëŠ” cmlPmIxMapAxes() 함수를 통하여 ë§µí•‘ëœ ì¶•ì˜ ìˆ˜ì™€ ì¼ì¹˜í•˜ì—¬ì•¼ 합니다. ê±°ë¦¬ì˜ ë‹¨ìœ„ëŠ” “Unit distanceâ€ì— ì˜í•´ ì •ì˜ë˜ëŠ” 논리ì 거리를 ì 용합니다. RETURN VALUE ````````````` .. csv-table:: :widths: 10 90 :header-rows: 1 :stub-columns: 0 Value, Meaning ìŒìˆ˜, 수행 실패 ERR_NONE, 수행 성공 REFERENCE ``````````````` - 논리ì 단위 거리는 cmlPmCfgSetUnitDist() í•¨ìˆ˜ì— ì˜í•´ ê²°ì •ë©ë‹ˆë‹¤. \ - cmlPmIxLineStart() 함수를 사용하는 경우ì—는 cmlPmIxIsDone() 함수나 cmlPmIxWaitDone() 함수를 사용하여 ëª¨ì…˜ì˜ ì™„ë£Œë¥¼ 확ì¸í• 수 있습니다. .. note:: "윈ë„ìš° ì´ë²¤íŠ¸ë¼ëŠ” ê²ƒì€ ë¬´ì—‡ìž…ë‹ˆê¹Œ?" 윈ë„ìš° ìš´ì˜ì²´ì œëŠ” Event Driven í˜¹ì€ Message Driven ë°©ì‹1ì˜ êµ¬ì¡°ë¡œ ë˜ì–´ 있습니다. ê° ì‘ìš©í”„ë¡œê·¸ëž¨ì€ ë©”ì‹œì§€ í(Queue)를 ê°€ì§€ê³ ìžˆìœ¼ë©°, ì •í™•ížˆ ë§í•˜ë©´, 메시지를 사용해 ì´ë²¤íŠ¸ë¥¼ 통지하는 ë°©ì‹ìœ¼ë¡œ 설계ë˜ì–´ 있습니다. 윈ë„ìš° 메시지를 처리한다는 ê²ƒì€ ë©”ì‹œì§€ íì—ì„œ 메시지를 하나씩 꺼내서 윈ë„ìš° í”„ë¡œì‹œì €ì— ì „ì†¡í•œë‹¤ëŠ” ê²ƒì„ ì˜ë¯¸í•˜ë©°, ì´ê²ƒì€ ê·¸ í–‰ì„ ì§€ê°€ ë˜ëŠ” 윈ë„ìš°ì— ì „ì†¡ë˜ì–´ 처리ë©ë‹ˆë‹¤. EXAMPLE ````````` .. code-block:: c++ :linenos: :emphasize-lines: 5 C/C++ #include “ComiMLink2_SDK.h†#include “ComiMLink2_SDK_Def.h†/* ì›ê²© 노드(Node ID : 1)ì˜ 0, 1번 ì¶•ì— ëŒ€í•˜ì—¬ 마스터 ì†ë„ 모드로 ìƒëŒ€ 좌표 ì§ì„ ë³´ê°„ ì´ì†¡ì„ 수행하는 ì˜ˆì œìž…ë‹ˆë‹¤. */ #define MAP0 0 #define NODE_ID 1 long BoardID = 0; cmlPmIxMapAxes(BoardID, 0, MAP0, ccmlX1_MASK | ccmlY1_MASK ); /*ë³´ê°„ ì†ë„ 패턴 ì„¤ì •ì—ì„œ 벡터 모드를 사용하지 ì•Šì„ ê²½ìš°ì—는 ê° ì¶•ì— ëŒ€í•œ ì†ë„를 미리 ì„¤ì •í•´ 주어야 합니다.*/ cmlPmCfgSetSpeedPattern(BoardID, 0, ccmlX1, cmlMODE_T, 4000, 20000, 20000 ); cmlPmCfgSetSpeedPattern(BoardID, 0, ccmlY1, cmlMODE_T, 5000, 20000, 20000 ); /*마스터 ì†ë„ 모드(벡터 모드를 사용하지 ì•ŠìŒ)ë¡œ ì‚¬ìš©í• ê²½ìš°ì—는 ì†ë„를 미리 ì„¤ì •í•œ ì†ë„ì˜ ë¹„ìœ¨ë¡œ ì„¤ì •í•´ ì¤ë‹ˆë‹¤.*/ cmlPmIxSetSpeedPattern(BoardID, 0, MAP0, cmlFALSE, cmlMODE_T, 100, 80, 80 ); //ë‘ ì¶•ì— ëŒ€í•œ ì´ë™ 거리를 ì„¤ì •í•©ë‹ˆë‹¤. double fDistList[2] = { 13000, 90000 }; //ë³´ê°„ 구ë™ì„ 시작합니다. cmlPmIxLineStart(BoardID, 0, MAP0, fDistList ); cmlPmIxWaitDone(BoardID, 0, MAP0, cmlFALSE ); SEE ALSO ```````````````` .. seealso:: :ref:`cmlPmIxLineToStart`